home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Taifun / Taifun 099 (1989-05-15)(Ossowski, Stefan)(DE)(PD).zip / Taifun 099 (1989-05-15)(Ossowski, Stefan)(DE)(PD).adf / PCQ / Runtime / writepad.asm < prev    next >
Assembly Source File  |  1989-03-31  |  699b  |  40 lines

  1.  
  2. *    WritePad.asm (of PCQ Pascal runtime library)
  3. *    Copyright (c) 1989 Patrick Quaid
  4.  
  5. *    this routine just spits out spaces, in groups of sixteen,
  6. *    to pad the beginning of any write.  This is for when you see
  7. *    something like write(45 div 4:10) in a program.
  8.  
  9.     XREF    _p%DOSBase
  10.     XREF    _LVOWrite
  11.  
  12.  
  13.     XDEF    _p%padout
  14. _p%padout
  15.     movem.l    d2/d3/a0/a1,-(sp)
  16.     move.w    d0,-(sp)
  17.     move.w    #16,d3
  18. 1$    move.l    #padbuffer,d2
  19.     cmp.w    (sp),d3
  20.     ble.s    2$
  21.     move.w    (sp),d3
  22. 2$    move.l    _p%DOSBase,a6
  23.     move.w    d3,-(sp)
  24.     move.l    d1,-(sp)
  25.     ext.l    d3
  26.     jsr    _LVOWrite(a6)
  27.     move.l    (sp)+,d1
  28.     move.w    (sp)+,d3
  29.     sub.w    d3,(sp)
  30.     bgt    1$
  31.     addq.l    #2,sp
  32.     movem.l    (sp)+,d2/d3/a0/a1
  33.     rts
  34.  
  35.     SECTION    PADBUFFER,DATA
  36.  
  37. padbuffer    dc.b    '                '
  38.  
  39.     END
  40.